﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using vensoft.Entities;
using vensoft.BussinesLogic;

namespace vensoft.Win32
{
    public partial class frmIngresarPedidoAlmacen : Form
    {
        IHistoricoIngresoPedidoBL historico;
        Historico_IngPedido ingreso;
        IEnlazarPedidoyDetalle enlazar;
        IPedidoBL pedidoBL;

        public frmIngresarPedidoAlmacen()
        {
            InitializeComponent();
        }

        public void Llamar()
        {
            almacenBindingSource.DataSource = CurrentAlmacen;
        }

        public Almacen CurrentAlmacen
        {
            get { return almacenBindingSource.Current as Almacen; }
            set
            {
                almacenBindingSource.DataSource = value;
            }
        }

        public Pedido CurrentPedido
        {
            get { return pedidoBindingSource.Current as Pedido; }
            set
            {
                pedidoBindingSource.DataSource = value;
            }
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            Close();
        }

        public List<Usuario> UsuarioActual { get; set; }

        private void frmIngresarPedidoAlmacen_Load(object sender, EventArgs e)
        {
            fechaDateTimePicker.Enabled = false;
            cmbTipoDoc.SelectedItem = "Boleta";
        }

        public List<DetallePedido> DetallePedido_Guardar { get; set; } 

        private void btnBuscarPedido_Click(object sender, EventArgs e)
        {
            frmGestionarPedido pedido = new frmGestionarPedido();
            pedido.estadoBotones = 0;
            pedido.ShowDialog();
            if (pedido.estadoCancelar == 1)
            {
            }
            else
            {
                pedidoBindingSource.DataSource = pedido.CurrentPedido;
                DetallePedido_Guardar = pedido.DetallePedido;
                detallePedidoBindingSource.DataSource = pedido.DetallePedido;
                pedidoBindingSource.ResetBindings(true);
            }
            
        }

        private void btnRegistrar_Click(object sender, EventArgs e)
        {
            ingreso = new Historico_IngPedido();
            ingreso.ID_Pedido = Convert.ToInt32(idTextBox.Text);
            ingreso.Raz_Soc = raz_socTextBox.Text;
            ingreso.Fecha_Pedido = Convert.ToDateTime(fechaDateTimePicker.Value.ToString());
            ingreso.ID_Almacen = Convert.ToInt32(iD_AlmacenTextBox.Text);
            ingreso.Ubicacion = ubicacionTextBox.Text;
            ingreso.Nombre_Usuario = UsuarioActual.ElementAt(0).Nomb_Usuario;
            ingreso.Tipo_Doc = cmbTipoDoc.SelectedItem.ToString();
            ingreso.Num_Doc = txtNumeroDoc.Text;

            historico = new HistoricoIngresoPedidoBL();
            historico.RegistrarHistorico(ingreso);

            enlazar = new EnlazarPedidoyDetalle();
            enlazar.RegistrarDetallePedido(DetallePedido_Guardar, ingreso.ID_Almacen, ingreso.Ubicacion);

            pedidoBL = new PedidoBL();
            pedidoBL.IngresarPedido(Convert.ToInt32(idTextBox.Text));

            MessageBox.Show("Transferencia registrada");
            Close();
        }
    }
}

